//package com.example.demojenkins.controller;
//
//import cn.hutool.core.util.ObjectUtil;
//import cn.hutool.poi.excel.ExcelReader;
//import cn.hutool.poi.excel.ExcelUtil;
//import cn.hutool.poi.excel.ExcelWriter;
//import cn.hutool.poi.excel.StyleSet;
//import com.example.demojenkins.domain.AjaxResult;
//import com.example.demojenkins.entity.TblOrderInfo;
//import com.example.demojenkins.service.impl.TblOrderInfoServiceImpl;
//import org.apache.poi.ss.usermodel.DataFormat;
//import org.springframework.http.HttpStatus;
//import org.springframework.http.ResponseEntity;
//import org.springframework.security.access.prepost.PreAuthorize;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.multipart.MultipartFile;
//
//import javax.annotation.Resource;
//import javax.servlet.ServletOutputStream;
//import javax.servlet.http.HttpServletResponse;
//import java.io.InputStream;
//import java.net.URLEncoder;
//import java.util.List;
//
///**
// * @version 1.0
// * @author: LZ
// * @description:
// * @since 2024-09-16 17:34
// */
//@RestController
//@RequestMapping("/excel")
//public class ExcelController {
//
//    @Resource
//    private TblOrderInfoServiceImpl tblOrderInfoServiceImpl;
//    @GetMapping("/export")
////    @PreAuthorize("hasAnyAuthority('text','admin')")
//    public void export(HttpServletResponse response) throws Exception {
//        //从数据库查出所有的数据
//        List<TblOrderInfo> list = tblOrderInfoServiceImpl.queryAll();
//        //在内存操作写到浏览器
//        ExcelWriter writer = ExcelUtil.getWriter(true);
//        DataFormat dataFormat = writer.getWorkbook().createDataFormat();
//        //这里的日期格式化规则与SimpleDateFormat不一样,
//        //部分格式可参考org.apache.poi.ss.usermodel.BuiltinFormats
//        short format = dataFormat.getFormat("yyyy-mm-dd hh:mm:ss");
//        StyleSet styleSet = writer.getStyleSet();
//        styleSet.getCellStyleForDate()
//                .setDataFormat(format);
//
//
//        writer.merge(list.size() + 23, "        年    月会员信息统计表");
//        //自定义标题别名
//        writer.addHeaderAlias("id", "序号");
//        writer.addHeaderAlias("orderName", "产品名称");
//        writer.addHeaderAlias("orderMap", "产品产地");
//        writer.addHeaderAlias("orderCount", "产品数量");
//        writer.addHeaderAlias("createTime", "入库时间");
//        writer.addHeaderAlias("updateTime", "出库时间");
//
//
//        //一次性写出list对象到Excel使用默认样式，强制输出标题
//        writer.write(list, true);
//
//        //设置浏览器响应的格式
//        response.setContentType("application/vnd.openxmlformats-officeedocument.sheet;charset=utf-8");
//        String fileName = URLEncoder.encode("ywlchild", "UTF-8");
//        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
//
//        ServletOutputStream out = response.getOutputStream();
//        writer.flush(out, true);
//        out.close();
//        writer.close();
//    }
//
//    @PostMapping("/import")
////    @PreAuthorize("hasAnyAuthority('text','admin')")
//    public AjaxResult importExcel(@RequestParam("file") MultipartFile file) {
//        try (InputStream inputStream = file.getInputStream()) {
//            String[] excelHead = {"序号", "产品名称","产品产地","产品数量","入库时间","出库时间"};
//            String[] excelHeadAlias = {"id", "orderName","orderMap","orderCount","createTime","updateTime"};
//            List<TblOrderInfo> userList = importExcel(inputStream, excelHead, excelHeadAlias, TblOrderInfo.class);
//            if (ObjectUtil.isEmpty(userList)) {
//
//                return new AjaxResult(500, "数据为空");
//            }
//            for (TblOrderInfo tblOrderInfo : userList) {
//                tblOrderInfoServiceImpl.insert(tblOrderInfo);
//            }
//            return new AjaxResult(200, "导入成功");
//        } catch (Exception ignored) {
//            return new AjaxResult(500, "导入失败");
//        }
//    }
//
//    /**
//     * 读取excel表格内容返回List<Bean>
//     *
//     * @param inputStream excel文件流
//     * @param head        表头数组
//     * @param headerAlias 表头别名数组
//     * @return <T>List<T>
//     */
//    public static <T> List<T> importExcel(InputStream inputStream, String[] head, String[] headerAlias, Class<T> bean) {
//        ExcelReader reader = ExcelUtil.getReader(inputStream);
//        // 多个sheet可以指定名称读取
//        List<Object> header = reader.readRow(0);
//        // 替换表头关键字
//        if ( head.length != headerAlias.length) {
//            return null;
//        } else {
//            for (int i = 0; i < head.length; i++) {
//                if (head[i].equals(header.get(i))) {
//                    reader.addHeaderAlias(head[i], headerAlias[i]);
//                } else {
//                    return null;
//                }
//            }
//        }
//        //读取指点行开始的表数据（从0开始）
//        return reader.read(0, 0, bean);
//    }
//
//
//
//}
